package com.szrt.day20170406;


/**
 * 
 * 函数 = 方法
 * 
 * 熟练掌握2个东东：
 * 
 * 
 * 1：  方法的定义 = 方法的申明   方法必须先定义 后调用
 * 
 * 		语法
 * 			1.1		静态的方法        凡是加了static的方法就叫静态的方法
 * 			1.2		动态的方法        凡是没加了static的方法就叫静态的方法
 * 
 * 		语法： 
 * 			访问修饰符   
 * 					public   公开的     随便哪里都可以访问   公共汽车  必须得写
 * 					默认的          什么都不写
 * 					protected 
 * 					private
 * 			静态或者动态    有没有加static   必须得写  
 * 
 * 					   在方法的调用上有本质的区别
 * 			返回值
 * 					返回值必须得写（ 基本类型   引用类型）  如果没有返回值 必须写void  构造方法例外...
 * 
 * 					如果方法有返回值： 调用完毕之后可以接受到调用的结果
 * 			方法名         
 * 					1： 小驼峰命名规则
 * 					2： 见名知意
 * 					3: 遵循变量的命名规则
 * 					4： 方法名字后面100%地肯定接一对小括号()
 * 			形参列表
 * 					小括号中的东东就叫形参列表
 * 
 * 						由2个东西组成
 * 						1： 变量的类型  基本类型   引用类型
 * 						2： 变量的名称  可以自定义  遵循变量的命名规则 
 * 						3： 形参可以有1个。也可以有2个。也可以有多个。也可以没有
 * 						4： 形参之间使用英文的逗号隔开
 * 			方法体：
 * 					写在{}里面的代码
 * 
 *
 *
 *			变量的作用域：
 *					写在方法的小括号中的变量和写在{}中的变量都叫变量： 而且是局部变量 一般局部变量离开了方法  就被垃圾回收器回收了。
 * 					
 * 			    	
 * 
 * 
 * 2：方法的调用
 * 				在方法的调用上有本质的区别
 * 
 * 				静态的方法 static 
 * 
 * 						1: 静态的方法 可以在main方法中直接调用
 * 							调用的语法：  
 * 									直接写方法名称(实参列表)     add(10,20)
 * 
 * 						2:动态的方法 有且只有1个途径去调用
 * 							动态的方法不能在main方法中直接使用  
 * 								因为静态的方法不能调用动态的方法。
 * 								反之可以  动态的方法可以调用静态的方法  动态的方法可以调用动态的方法
 * 							动态的方法只有1种调用方法
 * 							1：new出这个方法所在的类的对象   必须使用new关键字 否则没法玩
 * 									FunctionDemo01 obj = new FunctionDemo01();
 * 							2:在对象上对用	
 * 									obj.jia(20, 30);
 * 									
 * 			
 * @author scott-13926583118
 * 2017年4月6日
 *
 */
public class FunctionDemo01 {
	
	
	
	private static int aa  =20;
	
	
	public static void main(String[] args) {
		
		
		aa=aa+10;
		
		
		//静态的方法的调用
		int result = add(10,20);
		
		System.out.println(result);
		
		
		//动态的方法的调用
		FunctionDemo01 obj = new FunctionDemo01();
		int jieguo = obj.jia(20, 30);
		
		System.out.println("jieguo="+jieguo);
		
		
		System.out.println("aa="+aa);
		
		
		
	}
	
	
	
	/**
	 * 静态的方法
	 * @param a
	 * @param b
	 * @return
	 */
	private static int add(int a , int b){
		
		
		aa= aa+10;
		/*jia(a,b);*/
		int sum = a +b;
		return sum;
	}
	
	
	
	/**
	 * 动态的方法    没有static  
	 * 
	 * 静态的方法一般用在工具类方法中
	 * 一般情况下用动态的方法  95%
	 * @param a
	 * @param b
	 * @return
	 */
	protected int jia(int a , int b){
		
		//add(a, b);
		int sum = a +b;
		return sum;
	}
	
	
	

}
